package com.community.backend.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Spring Boot的跨域配置类。主要功能是：
 * 启用跨域支持：通过@Configuration注解将该类注册为配置类
 * 配置跨域规则：
 * 允许所有路径接口(/**)
 * 允许所有来源域名(allowedOriginPatterns("*"))
 * 允许所有HTTP方法和请求头
 * 支持携带Cookie凭证信息
 * 这样前端就可以跨域访问后端接口了。
 */
@Configuration
public class CorsConfig {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")          // 所有接口
                        .allowedOriginPatterns("*") // 或写 http://localhost:5173
                        .allowedMethods("*")
                        .allowedHeaders("*")
                        .allowCredentials(true);    // 如果带 cookie
            }
        };
    }
}